﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Tradex.Market;
using Tradex.Trading;

namespace Tradex.Messages {

    /// <summary>
    /// An InstrumentActivityUpdate contains information about an instrument's trading avtivity. These are the so called "Ticks"
    /// from other similar packages. Activities are all trade activities, but not market mode changes.
    /// </summary>
    [Serializable()]
    public class InstrumentActivityRequest : Message {

        /// <summary>
        /// Constructor taking all values.
        /// </summary>
        /// <param name="feedKey"></param>
        /// <param name="instrumentKey"></param>
        /// <param name="activityFilter"></param>
        public InstrumentActivityRequest (FeedKey feedKey, InstrumentKey instrumentKey, MarketUpdateFilters activityFilter) {
            FeedKey = feedKey;
            InstrumentKey = instrumentKey;
            ActivityFilter = activityFilter;
        }

        /// <inheritdoc />
        public override MessageCode Code { get { return MessageCode.InstrumentActivityRequest; } }

        /// <summary>
        /// Gets the FeedKey
        /// </summary>
        public FeedKey FeedKey { get; private set; }

        /// <summary>
        /// Gets the InstrumentKey
        /// </summary>
        public InstrumentKey InstrumentKey { get; private set; }

        /// <summary>
        /// Gets the ActivityFilter which indicates which data should be sent
        /// </summary>
        public MarketUpdateFilters ActivityFilter { get; private set; }

    }
}

